package com.smart.community.user.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * 用户登录DTO
 * 
 * @author Wu.Liang
 * @since 2024-12-21
 */
@Data
public class LoginDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户名/手机号/邮箱
     */
    @NotBlank(message = "用户名/手机号/邮箱不能为空")
    @Size(max = 100, message = "用户名/手机号/邮箱长度不能超过100个字符")
    private String username;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空")
    @Size(min = 6, max = 20, message = "密码长度必须在6-20个字符之间")
    private String password;

    /**
     * 验证码
     */
    @Size(min = 4, max = 6, message = "验证码长度必须在4-6个字符之间")
    private String captcha;

    /**
     * 验证码标识
     */
    private String captchaKey;

    /**
     * 记住我
     */
    private Boolean rememberMe = false;

    /**
     * 设备类型：1-PC，2-移动端，3-平板
     */
    private Integer deviceType = 1;

    /**
     * 登录IP
     */
    private String loginIp;

    /**
     * 用户代理
     */
    private String userAgent;
} 